﻿using System;

namespace KBEngine.Setting.Internal
{
    [Serializable]
    public class Bots
    {
        /// <summary>
        /// 脚本入口模块， 相当于main函数
        /// </summary>
        public string entryScriptFile = "kbemain";

        /// <summary>
        /// 指定接口地址，可配置网卡名、MAC、IP
        /// </summary>
        public string internalInterface = string.Empty;

        /// <summary>
        /// 对应baseapp的externalAddress的解决方案，当externalAddress强制下发公网IP提供登陆时，
        /// 如果局域网内部使用机器人测试也走公网IP和流量可能会不合适，此时可以设置为true，登陆时强制直接使用内网环境。
        /// </summary>
        public bool forceInternalLogin = false;

        /// <summary>
        /// loginapp地址
        /// </summary>
        public string host = "localhost";
        public uint port_min = 20013;
        public uint port_max = 0;

        /// <summary>
        /// 机器人(bots)专用：在Entity初始化时是否触发属性的set_*事件
        /// </summary>
        public bool isOnInitCallPropertysSetMethods = true;

        public DefaultAddBots defaultAddBots = new DefaultAddBots();
     
        public AccountInfos account_infos = new AccountInfos();
        public TelnetService telnet_service = new TelnetService();

        [Serializable]
        public class DefaultAddBots
        {
            /// <summary>
            ///  添加总数量
            /// </summary>
            public uint totalCount = 10;

            /// <summary>
            /// 每次添加所用时间(s)
            /// </summary>
            public float tickTime = 0.1f;

            /// <summary>
            /// 每次添加数量
            /// </summary>
            public uint tickCount = 5;
        }
        [Serializable]
        public class AccountInfos
        {
            /// <summary>
            /// 机器人账号名称的前缀
            /// </summary>
            public string account_name_prefix = "bot_";

            /// <summary>
            /// 机器人账号名称的后缀递增, 0使用随机数递增， 否则按照填写的数递增 
            /// 注意：想让机器人每次登陆使用相同的账号请设置固定的bots程序启动时的cid参数，具体参考服务器启动脚本，机器人账号由"前缀+cid+后缀组成"。
            /// </summary>
            public uint account_name_suffix_inc = 0;

            /// <summary>
            /// 机器人密码
            /// </summary>
            public string account_password = "pwd123456";
        }
    }
}
